package com.vshop.utils.date;

import lombok.extern.slf4j.Slf4j;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

/**
 * 获取世界协调时间（UTC）/格林尼治时间（GMT）的工具类
 *
 * @author lm
 * @date 2021/5/12 15:59
 */
@Slf4j
public final class GetUtcTimeUtil {
    /**
     * 传入时区字符串，
     * 返回格式化过的时间
     * 加这个参数的原因是不加TimeZone.getTimeZone()就报错
     *
     * @param timeZone
     * @return
     */
    public static String getDateFormatGmt(String timeZone) {
        SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateFormatGmt.setTimeZone(TimeZone.getTimeZone(timeZone));
        return dateFormatGmt.format(new Date());
    }

    public static void main(String[] args) {

        SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
        String timeZone = dateFormatGmt.format(new Date());
        log.info("0时区的时间：" + timeZone);

        SimpleDateFormat dateFormatGmt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateFormatGmt1.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        String gmtEight = dateFormatGmt1.format(new Date());
        log.info("东八区的时间：" + gmtEight);

        SimpleDateFormat dateFormatGmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateFormatGmt2.setTimeZone(TimeZone.getTimeZone("GMT-8"));
        String gmtEight2 = dateFormatGmt2.format(new Date());
        log.info("西八区的时间：" + gmtEight2);

        /*调用getDateFormatGmt()公用方法的时间*/
        String gmtZero = getDateFormatGmt("GMT");
        log.info("时间：" + gmtZero);
    }
}
